运维:Centos7安装解压版mysql5.7

您所在的位置:网站首页 mysql 解压安装 运维:Centos7安装解压版mysql5.7

运维:Centos7安装解压版mysql5.7

2024-06-29 03:23| 来源: 网络整理| 查看: 265

Centos7安装mysql5.7解压版完整教程避免踩坑,可以把数据目录和系统目录分开设置。

1、卸载Centos7默认自带的mariadb数据库,避免冲突代码语言:javascript复制#先查询是否安装,找到已安装的对应mariadb, yum list installed |grep mariadb #列表展示的是mariadb-libs.x86_64 ,执行如下命令进行安装 yum remove mariadb-libs.x86_64 2、下载解压版mysql并安装

下载mysql5.7解压版,我下载的版本mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

代码语言:javascript复制#创建MySQL上传目录 mkdir /opt/tools #然后登录Linux服务器,将下载好的安装包上传到服务器的/opt/tools目录。执行解压命令 cd /opt/tools tar -zxf /data/tools/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz #解压后的目录改名 mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql #移动mysql到 /usr/local/mysql mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql cd /usr/local/mysql #创建用户组和用户 mysql groupadd mysql useradd -r -g mysql mysql #目录授权 chgrp -R mysql . chown -R mysql . #创建MySQL存储数据的目录 mkdir /data/mysql/data mkdir /data/mysql/share 进入bin目录执行初始化 cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/data/ --lc_messages_dir=/data/mysql/share --lc_messages=en_US

注意:执行完成后输出的内容最后一行是数据库root的密码,一定要先保存下来

图片图片

进入support-files,修改mysql.server

cd /usr/local/mysql/support-files

代码语言:javascript复制#!/bin/sh # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB # This file is public domain and comes with NO WARRANTY of any kind # MySQL daemon start/stop script. # Usually this is put in /etc/init.d (at least on machines SYSV R4 based # systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql. # When this is done the mysql server will be started when the machine is # started and shut down when the systems goes down. # Comments to support chkconfig on RedHat Linux # chkconfig: 2345 64 36 # description: A very fast and reliable SQL database engine. # Comments to support LSB init script conventions ### BEGIN INIT INFO # Provides: mysql # Required-Start: $local_fs $network $remote_fs # Should-Start: ypbind nscd ldap ntpd xntpd # Required-Stop: $local_fs $network $remote_fs # Default-Start:  2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop MySQL # Description: MySQL is a very fast and reliable SQL database engine. ### END INIT INFO # If you install MySQL on some other places than /usr/local/mysql, then you # have to do one of the following things for this script to work: # # - Run this script from within the MySQL installation directory # - Create a /etc/my.cnf file with the following information: #   [mysqld] #   basedir= # - Add the above to any other configuration file (for example ~/.my.ini) #   and copy my_print_defaults to /usr/bin # - Add the path to the mysql-installation-directory to the basedir variable #   below. # # If you want to affect other MySQL variables, you should make your changes # in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files. # If you change base dir, you must also change datadir. These may get # overwritten by settings in the MySQL configuration files. basedir= datadir=/data/mysql/data # Default value, in seconds, afterwhich the script should timeout waiting # for server start.  # Value here is overriden by value in my.cnf.  # 0 means don't wait at all # Negative numbers mean to wait indefinitely service_startup_timeout=900 # Lock directory for RedHat / SuSE. lockdir='/var/lock/subsys' lock_file_path="$lockdir/mysql" # The following variables are only set for letting mysql.server find things. # Set some defaults mysqld_pid_file_path= if test -z "$basedir" then   basedir=/usr/local/mysql   bindir=/usr/local/mysql/bin   if test -z "$datadir"   then     datadir=/data/mysql/data   fi   sbindir=/usr/local/mysql/bin   libexecdir=/usr/local/mysql/bin else   bindir="$basedir/bin"   if test -z "$datadir"   then     datadir="/data/mysql/data"   fi   sbindir="$basedir/sbin"   libexecdir="$basedir/libexec" fi # datadir_set is used to determine if datadir was set (and so should be # *not* set inside of the --basedir= handler.) datadir_set= # # Use LSB init script functions for printing messages, if possible # lsb_functions="/lib/lsb/init-functions" if test -f $lsb_functions ; then   . $lsb_functions else   log_success_msg()   {     echo " SUCCESS! $@"   }   log_failure_msg()   {     echo " ERROR! $@"   } fi PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin" export PATH mode=$1    # start or stop [ $# -ge 1 ] && shift other_args="$*"   # uncommon, but needed when called from an RPM upgrade action            # Expected: "--skip-networking --skip-grant-tables"            # They are not checked here, intentionally, as it is the resposibility            # of the "spec" file author to give correct arguments only. case `echo "testing\c"`,`echo -n testing` in     *c*,-n*) echo_n=   echo_c=     ;;     *c*,*)   echo_n=-n echo_c=     ;;     *)       echo_n=   echo_c='\c' ;; esac parse_server_arguments() {   for arg do     case "$arg" in       --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`                     bindir="$basedir/bin"     if test -z "$datadir_set"; then       datadir="$basedir/data"     fi     sbindir="$basedir/sbin"     libexecdir="$basedir/libexec"         ;;       --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`     datadir_set=1 ;;       --pid-file=*) mysqld_pid_file_path=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;       --service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;     esac   done } wait_for_pid () {   verb="$1"           # created | removed   pid="$2"            # process ID of the program operating on the pid-file   pid_file_path="$3" # path to the PID file.   i=0   avoid_race_condition="by checking again"   while test $i -ne $service_startup_timeout ; do     case "$verb" in       'created')         # wait for a PID-file to pop into existence.         test -s "$pid_file_path" && i='' && break         ;;       'removed')         # wait for this PID-file to disappear         test ! -s "$pid_file_path" && i='' && break         ;;       *)         echo "wait_for_pid () usage: wait_for_pid created|removed pid pid_file_path"         exit 1         ;;     esac     # if server isn't running, then pid-file will never be updated     if test -n "$pid"; then       if kill -0 "$pid" 2>/dev/null; then         :  # the server still runs       else         # The server may have exited between the last pid-file check and now.           if test -n "$avoid_race_condition"; then           avoid_race_condition=""           continue  # Check again.         fi         # there's nothing that will affect the file.         log_failure_msg "555555The server quit without updating PID file ($pid_file_path)."         return 1  # not waiting any more.       fi     fi     echo $echo_n ".$echo_c"     i=`expr $i + 1`     sleep 1   done   if test -z "$i" ; then     log_success_msg     return 0   else     log_failure_msg     return 1   fi } # Get arguments from the my.cnf file, # the only group, which is read from now on is [mysqld] if test -x "$bindir/my_print_defaults";  then   print_defaults="$bindir/my_print_defaults" else   # Try to find basedir in /etc/my.cnf   conf=/etc/my.cnf   print_defaults=   if test -r $conf   then     subpat='^[^=]*basedir[^=]*=\(.*\)$'     dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`     for d in $dirs     do       d=`echo $d | sed -e 's/[ ]//g'`       if test -x "$d/bin/my_print_defaults"       then         print_defaults="$d/bin/my_print_defaults"         break       fi     done   fi   # Hope it's in the PATH ... but I doubt it   test -z "$print_defaults" && print_defaults="my_print_defaults" fi # # Read defaults file from 'basedir'.   If there is no defaults file there # check if it's in the old (depricated) place (datadir) and read it from there # extra_args="" if test -r "$basedir/my.cnf" then   extra_args="-e $basedir/my.cnf" fi parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server` # # Set pid file if not given # if test -z "$mysqld_pid_file_path" then   mysqld_pid_file_path=$datadir/`hostname`.pid else   case "$mysqld_pid_file_path" in     /* ) ;;     * )  mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;   esac fi case "$mode" in   'start')     # Start daemon     # Safeguard (relative paths, core dumps..)     cd $basedir     # 重启sql     echo $echo_n "Starting MySQL"     if test -x $bindir/mysqld_safe     then       # Give extra arguments to mysqld with the my.cnf file. This script       # may be overwritten at next upgrade.       $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &       wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?       # Make lock for RedHat / SuSE       if test -w "$lockdir"       then         touch "$lock_file_path"       fi       exit $return_value     else       log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"     fi     ;;   'stop')     # Stop daemon. We use a signal here to avoid having to know the     # root password.     if test -s "$mysqld_pid_file_path"     then       # signal mysqld_safe that it needs to stop       touch "$mysqld_pid_file_path.shutdown"       mysqld_pid=`cat "$mysqld_pid_file_path"`       if (kill -0 $mysqld_pid 2>/dev/null)       then         echo $echo_n "Shutting down MySQL"         kill $mysqld_pid         # mysqld should remove the pid file when it exits, so wait for it.         wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?       else         log_failure_msg "MySQL server process #$mysqld_pid is not running!"         rm "$mysqld_pid_file_path"       fi       # Delete lock for RedHat / SuSE       if test -f "$lock_file_path"       then         rm -f "$lock_file_path"       fi       exit $return_value     else       log_failure_msg "MySQL server PID file could not be found!"     fi     ;;   'restart')     # Stop the service and regardless of whether it was     # running or not, start it again.     if $0 stop  $other_args; then       $0 start $other_args     else       log_failure_msg "Failed to stop running server, so refusing to try to start."       exit 1     fi     ;;   'reload'|'force-reload')     if test -s "$mysqld_pid_file_path" ; then       read mysqld_pid 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3